using System;
using System.Collections.Generic;
using System.Text;

namespace IUPUI.StellarResults
{
	/// <summary>
	/// Defines properies and methods for a class that stores an <see cref="Altazimuth"/>.
	/// </summary>
	public interface IAltazimuthContainer
	{
		/// <summary>
		/// Gets or sets the <see cref="Altazimuth"/> of the telescope. 
		/// The azimuth will typically be between 0 and 360 degrees, 
		/// and the altitude typically will be between 0 and 90 degrees.
		/// </summary>
		/// <value>The degree of orientation.</value>
		Altazimuth Altazimuth
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets a value indicating whether the telescope is positionable.
		/// </summary>
		/// <value>
		/// 	<c>true</c> if the telescope is positionable; otherwise, <c>false</c>.
		/// </value>
		bool IsPositionable
		{
			get;
			set;
		}
		/// <summary>
		/// Gets or sets the altitude angle move per second.
		/// </summary>
		/// <value>The altitude angle move per second.</value>
		int AltitudeMovePerSecond
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets the azimuth angle move per second.
		/// </summary>
		/// <value>The azimuth anglemove per second.</value>
		int AzimuthMovePerSecond
		{
			get;
			set;
		}

		/// <summary>
		/// Changes the position.
		/// </summary>
		/// <param name="altazimuth">The altazimuth.</param>
		void ChangePosition(
		   Altazimuth altazimuth);

	}
}
